<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

require_once APPPATH . 'controllers/authorization.php';

/**
 * Контроллер авторизации админа
 *
 * @package CoreFramework
 * @version 1.0
 * @author Gennadiy Kozlenko
 */
class Admin extends Authorization {
   
   /**
    * Название переменной в сессии и куках, содержащих инфу по авторизованному админу
    * К тому же определяет папку к шаблонам логина и восстановления пароля
    *
    * @access protected
    * @var atring
    */
   var $_auth_name = 'admin';
   
   /**
    * Функция хеширования пароля
    *
    * @access protected
    * @var string
    */
   var $_hash_function = 'md5';
   
   /**
    * Конструктор класса
    *
    * @access public
    * @return Admin
    */
   function Admin() {
      parent::Authorization();
      // Подгружаем языковый файл
      $this->load->language('admin');
      // Подменяем лайаут
      $this->set_layout('admin');
   } // end User
   
   /**
    * Метод по умолчанию
    *
    * @access public
    */
   function index() {
      $this->redirect('admin_dashboard');
   } // end index
   
   /**
    * Получение информации по пользователю по его логину
    * Содержит следующие поля:
    *    id        - Идентификатор
    *    name      - Логин
    *    real_name - Реальное имя
    *    password  - Пароль (может быть закриптован)
    *    email     - Мыло
    *    status    - Статус пользователя
    *
    * @access protected
    * @param string $login
    * @return mixed
    */
   function _get_info($login) {
      if ($this->_auth_name == $login) {
         $info = array(
            'id'        => 1,
            'name'      => $this->_auth_name,
            'real_name' => $this->_auth_name,
            'password'  => array($this->variables->get('admin_password')),
            'email'     => $this->variables->get('site_email'),
            'status'    => 'active'
         );
         return $info;
      }
      return false;
   } // end _get_info
   
   /**
    * Изменение пароля пользователю по логину
    *
    * @access protected
    * @param string $login
    * @param string $password
    * @return boolean
    */
   function _change_password($login, $password) {
      if ($this->_auth_name == $login) {
         $this->variables->set('admin_password', $password);
         return true;
      }
      return false;
   } // end _change_password
   
}
